package com.topwalk.datacollect.util;

import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * 
 *  时间工具类
 * .
 *  <p>
 * -----------------------------------------------------------------------------
 * <p>
 * 工程名 ： SIP
 * <p>
 * 授权 : (C) Copyright topwalk Corporation 2006-2011
 * <p>
 * 公司 : 北京天行网安信息技术有限责任公司
 * <p>
 * -----------------------------------------------------------------------------
 * <p>
 * <font color="#FF0000">注意: 本内容仅限于北京天行网安公司内部使用，禁止转发</font>
 * <p>
 * 
 * @version 2.2
 * @createDate 2018年7月10日
 * @author hankuo
 * @since JDK1.8
 */
public class DateUtil {
	
	/**
	 * 获取当前时间
	 * @return
	 */
	public static String getCurrentTime(String format){
		//时间格式化
		SimpleDateFormat sdf = new SimpleDateFormat(format);
		return sdf.format(new Date());
	}
	
	/**
	 * 时间格式转换
	 * @param timeFormat 
	 * @param changeFormat
	 * @param time
	 * @return
	 */
	public static String formatTime(String timeFormat,String changeFormat,String time){
		SimpleDateFormat formatter = new SimpleDateFormat(timeFormat);
		ParsePosition pos = new ParsePosition(0);
		Date strtodate = formatter.parse(time, pos);
		formatter = new SimpleDateFormat(changeFormat);
		return formatter.format(strtodate);
	}
	
	/**
	 * 将时间转换为毫秒值
	 * @param date
	 * @param dateFormat
	 * @return
	 * @throws ParseException
	 */
	public static Long dateToMillis(String date,String dateFormat) throws ParseException{
		Calendar c = Calendar.getInstance();
        c.setTime(new SimpleDateFormat(dateFormat).parse(date));
        return c.getTimeInMillis();
	}
	
	/**
	 * 将毫秒值转换为时间
	 * @param date
	 * @param dateFormat
	 * @return
	 * @throws ParseException
	 */
	public static String millisToDate(Long date,String dateFormat) throws ParseException{
        return new SimpleDateFormat(dateFormat).format(new Date(date));
	}
	
	/**
	 * 获取传入日期是一周当中的第几天
	 * 周一~周日  1~7
	 * @param date
	 * @return
	 */
	public static int getDayOfWeek(Long date){
		Calendar calender = Calendar.getInstance();
		calender.setTimeInMillis(date);
		int i = calender.get(Calendar.DAY_OF_WEEK)-1;
		
		return i==0?7:i;
	}
	
	/**
	 * 小时去前0
	 * @param hour
	 * @return
	 */
	public static String trimHour(String hour){
		String hour_1 = hour.substring(0, 1);
		String hour_2 = hour.substring(1, 2);
		if("0".equals(hour_1)) {
			hour = hour_2;
		}
		return hour;
	}
	
}
